The present invention relates in general to interactive graphical computing environment. More particularly, the present invention relates to methods and apparatus for optimizing a transparent window.
Many early operating systems (i.e., MS DOS) could only run a single application. It was therefore possible, if not necessary, to allow the application to be directly coupled to the computer's hardware resources, such as the keyboard and video display. Primarily comprising a text-based interface, these applications received relatively little assistance from the operating system. For example, the application would directly poll the keyboard for any user keystrokes.
In contrast, most modern graphical operating systems (i.e. Microsoft Windows, Linux, MacOS, etc.) can simultaneously run multiple applications. Hence some sort of shared messaging system must be used to preclude resource sharing conflicts. User input is no longer polled by the application, but rather the application registers with the operating system, usually during installation, describing the forms of input that it would like to receive. The operating system, in turn, forwards messages to the application as appropriate. Likewise, any output to the display area or printer was also routed through the message system to the appropriate portion of the operating system (i.e., the typing of text, the scrolling of a mouse, or the resizing of the application window).
Display windows are common characteristic of most graphical operating systems. A window is a virtual entity, commonly referred to as a control, positioned on a computer display, for presenting the interaction between the user and the computer. The typical application has a single rectangular window displayed on the screen. However, some applications open multiple windows, and others permit arbitrarily shaped windows (not just rectangles) and windows of various styles and colors.
Computer platforms are also becoming smaller, faster, mobile, and more ubiquitous. Mobile, handheld computers; computing appliances; and smart telephones allow computer support to be built into task situations. Such situations include new physical environments, where computers have been impractical up to now, and also new social environments, where, previously, computers imposed a formidable barrier to social interaction. However, traditional user interface devices can be problematic. Keyboards are often awkward and bulky to carry, while the mouse (and other cursor-based input) is generally not optimized for entering text efficiently.
Pen-based computing developed as an alternative means of user input, comprising the functions of both the keyboard and the stylus. Most pen-based devices allow annotation directly on the screen display, much like the annotation of a physical sheet of paper with a marker. Furthermore, these platforms may also convert a user's handwritten notes into computer recognized text and commands. Many pen-based devices also run existing applications. For example, the Microsoft TabletPC, based on the XP platform, can run just about any XP application,
However, most applications must generally be specifically designed to take advantage of pen-based user input. Many previously written applications, such as an Internet browser, often do not allow direct annotation in the browser window. For instance, if two users are visually sharing a browser application, such as with Microsoft NetMeeting, it may be difficult, if not impossible, for a user to annotate directly on the browser display area.
In view of the foregoing, there is desired a method and apparatus for optimizing pen-based annotations on a window of a software application.